import { createSlice, PayloadAction } from '@reduxjs/toolkit';
import { User } from '@/schemas/user'; // 确保路径正确

// 定义 user state 的初始值
const initialState: User = {
  id: '',
  name: '',
  email: '',
  role: '',
  avatar: '',
  token: '',
  loginAt: '',
};

const userSlice = createSlice({
  name: 'user',
  initialState,
  reducers: {
    // 定义更新用户信息的 action
    setUser: (state, action: PayloadAction<Partial<User>>) => {
      // 使用 Object.assign 或展开运算符来更新状态
      // 这里使用 Object.assign 示例
      Object.assign(state, action.payload);
    },
    // 定义清除用户信息的 action (例如，登出时)
    clearUser: (state) => {
      Object.assign(state, initialState);
    },
    // 你可以根据需要添加更多 reducers
  },
});

// 导出 actions
export const USER = userSlice.actions;

// 导出 reducer
export default userSlice.reducer;